package com.platform.modules.phone.entity;

import com.platform.modules.phone.PhoneTopUpContants;
import com.platform.modules.phone.config.PhoneTopUpConfig;
import lombok.Data;

import java.math.BigInteger;

/**
 * 电话充值  请求实体类
 */
@Data
public class PhoneTopUpReqEntity {
    /**
     * 商户 ID
     */
    private String MerID;

    /**
     * 商户的007KA 帐户
     */
    private String MerAccount;

    /**
     * 合作伙伴方定单号
     */
    private String OrderID;

    /**
     * 类别码: 移动:1 电信:2 联通:8
     */
    private Integer CardType;

    /**
     * 充值金额
     */
    private BigInteger Value;

    /**
     * 允许的最大到账处理时间.单位是秒，小于 2 个小时，会被当 作2个小时处理，-1 表示不限制时间，系统将默认设为72小 时。
     */
    private Long timeout;

    /**
     * 手机号码归属地
     */
    private Integer Province;

    /**
     * 回复方式
     */
    private String ReplyFormat = PhoneTopUpContants.REPLY_FORMAT;

    /**
     * 固定值
     */
    private String Command = PhoneTopUpContants.REQ_COMMAND;

    /**
     * 接口名
     */
    private String InterfaceName = PhoneTopUpContants.INTERFACE_NAME;

    /**
     * 版本号
     */
    private String InterfaceNumber = PhoneTopUpContants.INTERFACE_NUMBER;

    /**
     * 不填
     */
    private String CardSn;

    /**
     * 不填
     */
    private Integer CardKey;

    /**
     * 充值号码
     */
    private Long ChargeNo;

    /**
     * 日期时间，格式:YYYYMMddHHmmss，如
     */
    private String Datetime;

    /**
     * 空
     */
    private String TranOrder;

    /**
     * 回调URL
     */
    private String MerURL;

    /**
     * 自定义信息
     */
    private String Attach;

    public PhoneTopUpReqEntity(PhoneTopUpConfig config) {
        this.MerID = config.getMerID();
        this.MerAccount = config.getMerAccount();
        this.timeout = config.getTimeout();
        this.MerURL = config.getNotifyUrl();
    }
}
